LIETUVOS JURIDINIŲ ASMENŲ BALANSO ANALIZ˶
1. HIPOTEZ˶
Juridiniai asmenys, kurie turi didesnį įstatinį kapitalą ir didesnį balansą, uždirba didesnį pelną bei gali pasisamdyti aukštesnės kvalifikacijos darbuotojus, mokėdami didesnį darbo užmokestį
2. UŽDAVINIAI¶
2.1 Paanalizuoti juridinių asmenų balansą pagal įstatinį kapitalą bei balanso dydį
2.2 Paanalizuoti juridinių asmenų balansą pagal pelną
2.3 Paanalizuoti juridinių asmenų balansą pagal darbo užmokestį
3. ANALIZ˶
Importuojami Pythono libraries numpy, pandas, matplotlib, seaborn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
3.1 Importuojami failai, kurių duomenys naudojami analizei atlikti, atspausdinamos pirmos arba paskutinės 2 eilutės, siekant įsitikinti, kad duomenų importas tinkamai veikia¶
ist_kapitalas = pd.read_csv('REGISTRU_CENTRAS_JAR_KAPITALAS.csv', index_col=0, delimiter='|')
ist_kapitalas.head(2)
ja_pavadinimas | form_kodas | form_pavadinimas | ist_kap_nuo | ist_kapitalas | valiuta | formavimo_data | |
---|---|---|---|---|---|---|---|
ja_kodas | |||||||
110001436 | UŽDAROJI AKCINĖ BENDROVĖ "LAMARING" | 310 | Uždaroji akcinė bendrovė | 1995-02-24 | 10000.00 | Lt | 2024-07-17 |
110003978 | Uždaroji akcinė bendrovė "Lietkompexim" | 310 | Uždaroji akcinė bendrovė | 2016-05-26 | 1392802.24 | Eur | 2024-07-17 |
balansas = pd.read_csv('REGISTRU_CENTRAS_JAR_FA_RODIKLIAI_BLNS_2023.csv', index_col=0, delimiter='|')
balansas.tail(2)
obj_pav | form_kodas | stat_statusas | template_id | template_name | standard_id | standard_name | laikotarpis_nuo | laikotarpis_iki | reg_date | nuosavas_kapitalas | mok_sumos_ir_isipareigojimai | ilgalaikis_turtas | trumpalaikis_turtas | formavimo_data | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
obj_kodas | |||||||||||||||
306650207 | Procesų Laboratorija, MB | 960 | 0 | FS0422 | Mažųjų bendrijų finansinių ataskaitų rinkinys | BST217 | BALANSAS (Neribotos civilinės atsakomybės juri... | 2023-12-29 | 2023-12-31 | 2024-04-15 | 0.00 | NaN | 0.00 | 0.00 | 2024-07-15 |
306650214 | VšĮ "Veritas et musica" | 570 | 0 | FS0134 | Pelno nesiekiančių JA metinės ataskaitos rinkinys | BST026 | METINĖS ATASKAITOS DUOMENYS | 2023-12-29 | 2023-12-31 | 2024-04-10 | 0.00 | NaN | NaN | NaN | 2024-07-15 |
pelnas_nuostolis = pd.read_csv('REGISTRU_CENTRAS_JAR_FA_RODIKLIAI_PLNA_2023.csv', index_col=0, delimiter='|')
pelnas_nuostolis.head(2)
obj_pav | form_kodas | form_pav | stat_statusas | stat_pav | template_id | template_name | standard_id | standard_name | laikotarpis_nuo | laikotarpis_iki | reg_date | pelnas_pries_apmokestinima | grynasis_pelnas | pardavimo_pajamos | formavimo_data | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
obj_kodas | ||||||||||||||||
110003978 | Uždaroji akcinė bendrovė "Lietkompexim" | 310 | Uždaroji akcinė bendrovė | 0 | Teisinis stat neįregistruotas | FS0229 | Mažų ir labai mažų įmonių, netaikančių išimčių... | IST024 | PELNO (NUOSTOLIŲ) ATASKAITA | 2022-01-01 | 2022-12-31 | 2023-05-24 | 15420.00 | 13104.00 | 65196.00 | 2024-07-15 |
110004884 | Uždaroji akcinė bendrovė "VILLON" | 310 | Uždaroji akcinė bendrovė | 0 | Teisinis stat neįregistruotas | FS0618 | Atskirosios finansinės būklės ataskaitos duomenys | IST209 | PELNO (NUOSTOLIŲ) ATASKAITA (sąnaudų paskirties) | 2022-01-01 | 2022-12-31 | 2023-06-30 | -824210.00 | NaN | 8359577.00 | 2024-07-15 |
sodra_darbo_uzmokestis = pd.read_csv(
'SODRA_monthly_2023.csv', index_col=0, delimiter=';',
on_bad_lines='skip', # praleisk eilutes su klaidomis
encoding='utf-8' # pritaikyk utf 8, jei to reikės
)
sodra_darbo_uzmokestis.tail(2)
Juridinių asmenų registro kodas (jarCode) | Pavadinimas (name) | Savivaldybė, kurioje registruota(municipality) | Ekonominės veiklos rūšies kodas(ecoActCode) | Ekonominės veiklos rūšies pavadinimas(ecoActName) | Mėnuo (month) | Vidutinis darbo užmokestis (avgWage) | Apdraustųjų skaičius (numInsured) | Vidutinis darbo užmokestis II (avgWage2) | Apdraustųjų skaičius II (numInsured2) | Valstybinio socialinio draudimo įmoka (tax) | |
---|---|---|---|---|---|---|---|---|---|---|---|
Draudėjo kodas (code) | |||||||||||
4171326 | 306638735.00 | UAB "YR HOLDINGAS LT" | Vilniaus m. sav. | NaN | NaN | 202311 | NaN | 1 | NaN | 0 | NaN |
4171326 | 306638735.00 | UAB "YR HOLDINGAS LT" | Vilniaus m. sav. | NaN | NaN | 202312 | NaN | 1 | NaN | 0 | NaN |
3.2 Pakeičiamas duomenų tipas lentelėje 'sodra_darbo_uzmokestis', stulpelyje 'Juridinių asmenų registro kodas (jarCode)' į integer¶
sodra_darbo_uzmokestis['Juridinių asmenų registro kodas (jarCode)'] = sodra_darbo_uzmokestis['Juridinių asmenų registro kodas (jarCode)'].astype('Int64')
sodra_darbo_uzmokestis.tail(2)
Juridinių asmenų registro kodas (jarCode) | Pavadinimas (name) | Savivaldybė, kurioje registruota(municipality) | Ekonominės veiklos rūšies kodas(ecoActCode) | Ekonominės veiklos rūšies pavadinimas(ecoActName) | Mėnuo (month) | Vidutinis darbo užmokestis (avgWage) | Apdraustųjų skaičius (numInsured) | Vidutinis darbo užmokestis II (avgWage2) | Apdraustųjų skaičius II (numInsured2) | Valstybinio socialinio draudimo įmoka (tax) | |
---|---|---|---|---|---|---|---|---|---|---|---|
Draudėjo kodas (code) | |||||||||||
4171326 | 306638735 | UAB "YR HOLDINGAS LT" | Vilniaus m. sav. | NaN | NaN | 202311 | NaN | 1 | NaN | 0 | NaN |
4171326 | 306638735 | UAB "YR HOLDINGAS LT" | Vilniaus m. sav. | NaN | NaN | 202312 | NaN | 1 | NaN | 0 | NaN |
3.3 Pakeičiamas stulpelio pavadinimas lentelėje 'sodra_darbo_uzmokestis', stulpelyje 'Juridinių asmenų registro kodas (jarCode)' į 'ja_kodas'¶
sodra_darbo_uzmokestis = sodra_darbo_uzmokestis.rename(columns={'Juridinių asmenų registro kodas (jarCode)': 'ja_kodas'})
sodra_darbo_uzmokestis.head(2)
ja_kodas | Pavadinimas (name) | Savivaldybė, kurioje registruota(municipality) | Ekonominės veiklos rūšies kodas(ecoActCode) | Ekonominės veiklos rūšies pavadinimas(ecoActName) | Mėnuo (month) | Vidutinis darbo užmokestis (avgWage) | Apdraustųjų skaičius (numInsured) | Vidutinis darbo užmokestis II (avgWage2) | Apdraustųjų skaičius II (numInsured2) | Valstybinio socialinio draudimo įmoka (tax) | |
---|---|---|---|---|---|---|---|---|---|---|---|
Draudėjo kodas (code) | |||||||||||
42399 | <NA> | LATVIJOS RESPUBLIKOS AMBASADA | Vilniaus m. sav. | NaN | NaN | 202301 | NaN | 3 | NaN | 0 | NaN |
45838 | <NA> | GOETHE-INSTITUT | Vilniaus m. sav. | NaN | NaN | 202301 | 1651.63 | 11 | NaN | 0 | 4009.89 |
3.4 Pirmasis lentelių stulpelis nespausdinamas, dėl to nepavyksta sujungti visų lentelių per juridinio asmens kodą. Visoms lentelėms pakeičiamas indekso stulpelis panaudojant reset_index¶
print(ist_kapitalas.columns)
Index(['ja_pavadinimas', 'form_kodas', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data'], dtype='object')
ist_kapitalas = ist_kapitalas.reset_index()
print(ist_kapitalas.columns)
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data'], dtype='object')
print(balansas.columns)
Index(['obj_pav', 'form_kodas', 'stat_statusas', 'template_id', 'template_name', 'standard_id', 'standard_name', 'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data'], dtype='object')
balansas = balansas.reset_index()
print(balansas.columns)
Index(['index', 'obj_kodas', 'obj_pav', 'form_kodas', 'stat_statusas', 'template_id', 'template_name', 'standard_id', 'standard_name', 'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data'], dtype='object')
print(pelnas_nuostolis.columns)
Index(['obj_pav', 'form_kodas', 'form_pav', 'stat_statusas', 'stat_pav', 'template_id', 'template_name', 'standard_id', 'standard_name', 'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data'], dtype='object')
pelnas_nuostolis = pelnas_nuostolis.reset_index()
print(pelnas_nuostolis.columns)
Index(['obj_kodas', 'obj_pav', 'form_kodas', 'form_pav', 'stat_statusas', 'stat_pav', 'template_id', 'template_name', 'standard_id', 'standard_name', 'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data'], dtype='object')
print(sodra_darbo_uzmokestis.columns)
Index(['ja_kodas', 'Pavadinimas (name)', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'Valstybinio socialinio draudimo įmoka (tax)'], dtype='object')
sodra_darbo_uzmokestis = sodra_darbo_uzmokestis.reset_index()
print(sodra_darbo_uzmokestis.columns)
Index(['Draudėjo kodas (code)', 'ja_kodas', 'Pavadinimas (name)', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'Valstybinio socialinio draudimo įmoka (tax)'], dtype='object')
3.5 Sujungiamos visos lentelės panaudojant juridinio asmens kodą¶
# Sujungiamos lentelės ist_kapitalas ir balansas per stulpelius 'ja_kodas' ir 'obj_kodas'
sujungtos_lentelės = pd.merge(ist_kapitalas, balansas, left_on='ja_kodas', right_on='obj_kodas', how='inner')
# Prie sujungtų lentelių prijungiama lentelė pelnas_nuostolis per stulpelį 'obj_kodas'
sujungtos_lentelės = pd.merge(sujungtos_lentelės, pelnas_nuostolis, on='obj_kodas', how='inner')
# Prie sujungtų lentelių prijungiama lentelė sodra_darbo_uzmokestis per stulpelį 'ja_kodas'
sujungtos_lentelės = pd.merge(sujungtos_lentelės, sodra_darbo_uzmokestis, on='ja_kodas', how='inner')
#Išspausdinamas rezultatas, 2 pirmos eilutės
print(sujungtos_lentelės.head(2))
#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
ja_kodas ja_pavadinimas form_kodas_x \ 0 110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 1 110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 form_pavadinimas ist_kap_nuo ist_kapitalas valiuta \ 0 Uždaroji akcinė bendrovė 2016-05-26 1392802.24 Eur 1 Uždaroji akcinė bendrovė 2016-05-26 1392802.24 Eur formavimo_data_x level_0 index_x ... \ 0 2024-07-17 0 0 ... 1 2024-07-17 0 0 ... Pavadinimas (name) \ 0 UŽDAROJI AKCINĖ BENDROVĖ LIETKOMPEXIM 1 UŽDAROJI AKCINĖ BENDROVĖ LIETKOMPEXIM Savivaldybė, kurioje registruota(municipality) \ 0 Vilniaus m. sav. 1 Vilniaus m. sav. Ekonominės veiklos rūšies kodas(ecoActCode) \ 0 682000.00 1 682000.00 Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month) \ 0 Nuosavo arba nuomojamo nekilnojamojo turto nuo... 202301 1 Nuosavo arba nuomojamo nekilnojamojo turto nuo... 202302 Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured) \ 0 NaN 2 1 NaN 2 Vidutinis darbo užmokestis II (avgWage2) \ 0 NaN 1 NaN Apdraustųjų skaičius II (numInsured2) \ 0 0 1 0 Valstybinio socialinio draudimo įmoka (tax) 0 NaN 1 NaN [2 rows x 55 columns] Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x', 'level_0', 'index_x', 'obj_kodas', 'obj_pav_x', 'form_kodas_y', 'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y', 'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y', 'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y', 'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y', 'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data', 'index', 'Draudėjo kodas (code)', 'Pavadinimas (name)', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'Valstybinio socialinio draudimo įmoka (tax)'], dtype='object')
3.6 Ištrinti stulpelius, kur pasikartoja reikšmės arba kurių tikrai nereikės šioje analizėje¶
columns_to_drop = ['obj_kodas', 'obj_pav_x', 'Pavadinimas (name)', 'Valstybinio socialinio draudimo įmoka (tax)', 'Draudėjo kodas (code)']
sujungtos_lentelės.drop(columns=columns_to_drop, inplace=True)
#Išspausdinamas rezultatas, 2 pirmos eilutės
print(sujungtos_lentelės.head(2))
#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
ja_kodas ja_pavadinimas form_kodas_x \ 0 110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 1 110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 form_pavadinimas ist_kap_nuo ist_kapitalas valiuta \ 0 Uždaroji akcinė bendrovė 2016-05-26 1392802.24 Eur 1 Uždaroji akcinė bendrovė 2016-05-26 1392802.24 Eur formavimo_data_x level_0 index_x ... formavimo_data index \ 0 2024-07-17 0 0 ... 2024-07-15 7400 1 2024-07-17 0 0 ... 2024-07-15 7401 Savivaldybė, kurioje registruota(municipality) \ 0 Vilniaus m. sav. 1 Vilniaus m. sav. Ekonominės veiklos rūšies kodas(ecoActCode) \ 0 682000.00 1 682000.00 Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month) \ 0 Nuosavo arba nuomojamo nekilnojamojo turto nuo... 202301 1 Nuosavo arba nuomojamo nekilnojamojo turto nuo... 202302 Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured) \ 0 NaN 2 1 NaN 2 Vidutinis darbo užmokestis II (avgWage2) \ 0 NaN 1 NaN Apdraustųjų skaičius II (numInsured2) 0 0 1 0 [2 rows x 50 columns] Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x', 'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y', 'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y', 'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y', 'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y', 'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data', 'index', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)'], dtype='object')
3.7 Pridedamas stulpelis 'balansas_viso'¶
# Pridedamas stulpelis 'balansas_viso', kuris yra suma dviejų stuleplių reikšmių:'ilgalaikis_turtas' ir 'trumpalaikis_turtas'
sujungtos_lentelės['balansas_viso'] = sujungtos_lentelės['ilgalaikis_turtas'] + sujungtos_lentelės['trumpalaikis_turtas']
#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:19, ['ilgalaikis_turtas', 'trumpalaikis_turtas', 'balansas_viso', 'laikotarpis_nuo_x', 'laikotarpis_iki_x']])
#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
ilgalaikis_turtas trumpalaikis_turtas balansas_viso laikotarpis_nuo_x \ 0 657695.00 1105067.00 1762762.00 2022-01-01 1 657695.00 1105067.00 1762762.00 2022-01-01 2 657695.00 1105067.00 1762762.00 2022-01-01 3 657695.00 1105067.00 1762762.00 2022-01-01 4 657695.00 1105067.00 1762762.00 2022-01-01 5 657695.00 1105067.00 1762762.00 2022-01-01 6 657695.00 1105067.00 1762762.00 2022-01-01 7 657695.00 1105067.00 1762762.00 2022-01-01 8 657695.00 1105067.00 1762762.00 2022-01-01 9 657695.00 1105067.00 1762762.00 2022-01-01 10 657695.00 1105067.00 1762762.00 2022-01-01 11 657695.00 1105067.00 1762762.00 2022-01-01 12 666700.00 1370540.00 2037240.00 2023-01-01 13 666700.00 1370540.00 2037240.00 2023-01-01 14 666700.00 1370540.00 2037240.00 2023-01-01 15 666700.00 1370540.00 2037240.00 2023-01-01 16 666700.00 1370540.00 2037240.00 2023-01-01 17 666700.00 1370540.00 2037240.00 2023-01-01 18 666700.00 1370540.00 2037240.00 2023-01-01 19 666700.00 1370540.00 2037240.00 2023-01-01 laikotarpis_iki_x 0 2022-12-31 1 2022-12-31 2 2022-12-31 3 2022-12-31 4 2022-12-31 5 2022-12-31 6 2022-12-31 7 2022-12-31 8 2022-12-31 9 2022-12-31 10 2022-12-31 11 2022-12-31 12 2023-12-31 13 2023-12-31 14 2023-12-31 15 2023-12-31 16 2023-12-31 17 2023-12-31 18 2023-12-31 19 2023-12-31 Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x', 'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y', 'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y', 'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y', 'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y', 'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data', 'index', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso'], dtype='object')
3.8 Pašalinami dublikatai¶
sujungtos_lentelės = sujungtos_lentelės.drop_duplicates()
#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:19, ['ilgalaikis_turtas', 'trumpalaikis_turtas', 'balansas_viso', 'laikotarpis_nuo_x', 'laikotarpis_iki_x']])
#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
ilgalaikis_turtas trumpalaikis_turtas balansas_viso laikotarpis_nuo_x \ 0 657695.00 1105067.00 1762762.00 2022-01-01 1 657695.00 1105067.00 1762762.00 2022-01-01 2 657695.00 1105067.00 1762762.00 2022-01-01 3 657695.00 1105067.00 1762762.00 2022-01-01 4 657695.00 1105067.00 1762762.00 2022-01-01 5 657695.00 1105067.00 1762762.00 2022-01-01 6 657695.00 1105067.00 1762762.00 2022-01-01 7 657695.00 1105067.00 1762762.00 2022-01-01 8 657695.00 1105067.00 1762762.00 2022-01-01 9 657695.00 1105067.00 1762762.00 2022-01-01 10 657695.00 1105067.00 1762762.00 2022-01-01 11 657695.00 1105067.00 1762762.00 2022-01-01 12 666700.00 1370540.00 2037240.00 2023-01-01 13 666700.00 1370540.00 2037240.00 2023-01-01 14 666700.00 1370540.00 2037240.00 2023-01-01 15 666700.00 1370540.00 2037240.00 2023-01-01 16 666700.00 1370540.00 2037240.00 2023-01-01 17 666700.00 1370540.00 2037240.00 2023-01-01 18 666700.00 1370540.00 2037240.00 2023-01-01 19 666700.00 1370540.00 2037240.00 2023-01-01 laikotarpis_iki_x 0 2022-12-31 1 2022-12-31 2 2022-12-31 3 2022-12-31 4 2022-12-31 5 2022-12-31 6 2022-12-31 7 2022-12-31 8 2022-12-31 9 2022-12-31 10 2022-12-31 11 2022-12-31 12 2023-12-31 13 2023-12-31 14 2023-12-31 15 2023-12-31 16 2023-12-31 17 2023-12-31 18 2023-12-31 19 2023-12-31 Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x', 'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y', 'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y', 'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y', 'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y', 'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data', 'index', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso', 'ist_kapitalas_ekv_eur'], dtype='object')
3.9 Pridedamas stulpelis, kur perskaičiuojamas įstatinis kapitalas į Eur ten, kur vertės Ltl arba lieka Eur, jei vertė buvo Eur. Taip pat pridedamas stulpelis valiutai ekvivalentu¶
#Pridedamas stulpelis 'ist_kapitalas_ekv_eur', kur perskaičiuojamas įstatinis kapitalas į Eur ten, kur vertės Ltl arba lieka Eur, jei vertė buvo Eur.
#Jei daroma kalkuliacija iš Ltl į Eur, tada apvalinami 2 skaičiai po kablelio
sujungtos_lentelės['ist_kapitalas_ekv_eur'] = np.where(
sujungtos_lentelės['valiuta'] == 'Eur',
sujungtos_lentelės['ist_kapitalas'],
(sujungtos_lentelės['ist_kapitalas'] / 3.4528).round(2)
)
#Taip pat pridedamas stulpelis 'valiuta_eur', kur įrašoma valiuyta Eur į visus laukelius
sujungtos_lentelės['valiuta_eur'] = 'Eur'
#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:5899, ['ist_kapitalas', 'valiuta', 'ist_kapitalas_ekv_eur', 'valiuta_eur']])
#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
ist_kapitalas valiuta ist_kapitalas_ekv_eur valiuta_eur 0 1392802.24 Eur 1392802.24 Eur 1 1392802.24 Eur 1392802.24 Eur 2 1392802.24 Eur 1392802.24 Eur 3 1392802.24 Eur 1392802.24 Eur 4 1392802.24 Eur 1392802.24 Eur ... ... ... ... ... 5895 426292.00 Eur 426292.00 Eur 5896 426292.00 Eur 426292.00 Eur 5897 426292.00 Eur 426292.00 Eur 5898 426292.00 Eur 426292.00 Eur 5899 426292.00 Eur 426292.00 Eur [5900 rows x 4 columns] Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas', 'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x', 'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y', 'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y', 'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y', 'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y', 'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'formavimo_data', 'index', 'Savivaldybė, kurioje registruota(municipality)', 'Ekonominės veiklos rūšies kodas(ecoActCode)', 'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)', 'Vidutinis darbo užmokestis (avgWage)', 'Apdraustųjų skaičius (numInsured)', 'Vidutinis darbo užmokestis II (avgWage2)', 'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso', 'ist_kapitalas_ekv_eur', 'valiuta_eur'], dtype='object')
# Filtruok eilutes kur stulpelyje 'valiuta' yra 'Ltl'
filtruotos_eilutes = sujungtos_lentelės[sujungtos_lentelės['valiuta'] == 'Ltl']
# Išspausdink tik 5 eilutes, kur stulpelyje 'valiuta' yra 'Ltl'
print(filtruotos_eilutes.loc[:, ['ist_kapitalas', 'valiuta', 'ist_kapitalas_ekv_eur', 'valiuta_eur']].head(5))
Empty DataFrame Columns: [ist_kapitalas, valiuta, ist_kapitalas_ekv_eur, valiuta_eur] Index: []
3.10 Atspausdinama stulpelių minianalizė.¶
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurio stulpelio statistiką rodyti
#ist_kapitalas_column = ist_kapitalas['ist_kapitalas']
ist_kapitalas_column = ist_kapitalas[['ist_kapitalas']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
ist_kapitalas_statistika = ist_kapitalas_column.describe().round(2)
#atspausdinama statistika
print(ist_kapitalas_statistika)
#pavyzdys, kodėl nuspręsta neimti visų stulpelių
#ist_kapitalas.describe()
ist_kapitalas count 106110.00 mean 368220.60 std 16130416.78 min 2.00 25% 2500.00 50% 2896.00 75% 10000.00 max 4222910000.00
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurių stulpelių statistiką rodyti
balansas_columns = balansas[['nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
balanso_statistika = balansas_columns.describe().round(2)
#atspausdinama statistika
print(balanso_statistika)
#pavyzdys, kodėl nuspręsta neimti visų stulpelių
#balansas.describe()
nuosavas_kapitalas mok_sumos_ir_isipareigojimai ilgalaikis_turtas \ count 293906.00 232648.00 287103.00 mean 597651.47 505133.06 724922.37 std 21716774.86 6248512.81 25009981.20 min -116844716.00 -1720180.00 -1086489.00 25% 0.00 986.00 0.00 50% 7919.50 19750.00 2046.00 75% 69110.50 118863.50 35300.00 max 4488251186.00 1294716179.00 4488273069.00 trumpalaikis_turtas count 286985.00 mean 444163.51 std 6807408.94 min -1771441.00 25% 2851.00 50% 21866.00 75% 112280.00 max 1505312145.00
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurių stulpelių statistiką rodyti
sujungtos_lentelės_columns = sujungtos_lentelės[['nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas', 'trumpalaikis_turtas', 'ist_kapitalas', 'ist_kapitalas_ekv_eur', 'balansas_viso', 'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos', 'Vidutinis darbo užmokestis (avgWage)', 'Vidutinis darbo užmokestis II (avgWage2)']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
sujungtos_lentelės_statistika = sujungtos_lentelės_columns.describe().round(2)
#atspausdinama statistika
print(sujungtos_lentelės_statistika)
nuosavas_kapitalas mok_sumos_ir_isipareigojimai ilgalaikis_turtas \ count 2210519.00 2202896.00 2217746.00 mean 784397.55 602961.59 933658.56 std 15461823.34 5512808.46 19025222.86 min -96795095.00 -1720180.00 -156387.00 25% 2374.00 8030.00 133.00 50% 30747.00 42632.00 10484.00 75% 158000.00 184881.00 85863.00 max 2887013000.00 923803000.00 3490689000.00 trumpalaikis_turtas ist_kapitalas ist_kapitalas_ekv_eur \ count 2217746.00 2218802.00 2218802.00 mean 668090.83 286559.61 283441.12 std 8396558.70 7906434.87 7906152.15 min -1771441.00 500.00 144.81 25% 13696.00 2606.40 2606.40 50% 58260.00 2896.00 2896.00 75% 224811.00 10000.00 9412.00 max 1505312145.00 1105174899.99 1105174899.99 balansas_viso pelnas_pries_apmokestinima grynasis_pelnas \ count 2217746.00 1473214.00 2211673.00 mean 1601749.39 172298.14 101496.36 std 22974331.47 3551846.08 2535032.37 min -1765282.00 -162020000.00 -72503118.00 25% 22628.00 -1854.00 -2259.00 50% 96654.00 4504.00 2242.00 75% 386630.00 43772.00 25435.00 max 3546310000.00 626492901.00 554487842.00 pardavimo_pajamos Vidutinis darbo užmokestis (avgWage) \ count 1978977.00 866109.00 mean 1799133.45 1369.43 std 33329342.19 1054.84 min -7216177.00 2.45 25% 31967.00 794.40 50% 125898.00 1098.46 75% 504203.00 1649.33 max 7551971000.00 71423.22 Vidutinis darbo užmokestis II (avgWage2) count 3220.00 mean 1757.95 std 9053.96 min 8.33 25% 271.92 50% 637.27 75% 1592.00 max 306355.77
3.11 Statistiniai paskaičiavimai pagal išsikeltus uždavinius¶
# Apskaičiuojami kvantiliai (Percentiles calculation)
kvantilis = {
'Q1 (25_procentilis)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.25),
'Q2 (50_procentilis_mediana)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.50),
'Q3 (75_procentilis)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.75),
'Q4 (Max_vertė)': sujungtos_lentelės_columns['balansas_viso'].max()
}
print("Kvantiliai pagal balanso vertę:")
print(kvantilis)
# Filtruojamos eilutės pagal kvantilius
def gauti_kvantilio_diapazonus(duomenų_rinkinys, stulpelis, kvantilis):
diapazonai = {
'Q1 (25_procentilis)': duomenų_rinkinys[duomenų_rinkinys[stulpelis] <= kvantilis['Q1 (25_procentilis)']],
'Q2 (50_procentilis_mediana)': duomenų_rinkinys[(duomenų_rinkinys[stulpelis] > kvantilis['Q1 (25_procentilis)']) & (duomenų_rinkinys[stulpelis] <= kvantilis['Q2 (50_procentilis_mediana)'])],
'Q3 (75_procentilis)': duomenu_rinkinys[(duomenu_rinkinys[stulpelis] > kvantilis['Q2 (50_procentilis_mediana)']) & (duomenų_rinkinys[stulpelis] <= kvantilis['Q3 (75_procentilis)'])],
'Q4 (Max Value)': duomeu_rinkinys[duomenų_rinkinys[stulpelis] > kvantilis['Q3 (75_procentilis)']]
}
return diapazonai
kvantilio_diapazonai = gauti_kvantilio_diapazonus(sujungtos_lentelės_columns, 'balansas_viso', kvantilis)
# Stulpeliai vidurkių skaičiavimui
stulpeliai = [
'pelnas_pries_apmokestinima',
'grynasis_pelnas',
'ist_kapitalas',
'Vidutinis darbo užmokestis (avgWage)'
]
#Paskaičiuojama vidutinė vertė kiekvienam kvantilio diapazonui
for kvantilio_diapazonas, duomenu_diapazonas in kvantilio_diapazonai.items():
vidurkis = duomenu_diapazonas[stulpeliai].mean()
print(f"\nVidutinės vertės {kvantilio_diapazonas}:")
print(vidurkis)
Kvantiliai pagal balanso vertę: {'Q1 (25_procentilis)': 22628.0, 'Q2 (50_procentilis_mediana)': 96654.0, 'Q3 (75_procentilis)': 386630.0, 'Q4 (Max_vertė)': 3546310000.0} Vidutinės vertės Q1 (25_procentilis): pelnas_pries_apmokestinima -1825.46 grynasis_pelnas -1857.67 ist_kapitalas 11388.98 Vidutinis darbo užmokestis (avgWage) 784.84 dtype: float64 Vidutinės vertės Q2 (50_procentilis_mediana): pelnas_pries_apmokestinima 4690.12 grynasis_pelnas 3606.67 ist_kapitalas 13349.46 Vidutinis darbo užmokestis (avgWage) 947.83 dtype: float64 Vidutinės vertės Q3 (75_procentilis): pelnas_pries_apmokestinima 20388.84 grynasis_pelnas 17087.75 ist_kapitalas 24394.92 Vidutinis darbo užmokestis (avgWage) 1195.99 dtype: float64 Vidutinės vertės Q4 (Max_vertė): pelnas_pries_apmokestinima 520139.58 grynasis_pelnas 389709.32 ist_kapitalas 1096826.91 Vidutinis darbo užmokestis (avgWage) 1813.57 dtype: float64
3.12 Scatter grafikas¶
sujungtos_lentelės.plot(y='grynasis_pelnas',x='balansas_viso', kind='scatter')
<Axes: xlabel='balansas_viso', ylabel='grynasis_pelnas'>
4. IŠVADOS¶
Hipotezė patvirtinta paanalizavus vidurkius pagal balanso kvantilius.
4.1 Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) įneša vidutiniškai didesnį įstatintį kapitalą. Juridiniai asmenys, patenkantys į 25% kvantilį įneša vidutiniškai mažiausią įstatinį kapitalą. 4 2.Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) vidutiniškai uždirba didžiausią pelną prieš apmokestinimą bei didžiausią grynąjį pelną. Juridiniai asmenys, patenkantys į 25% kvantilį vidutiniškai patiria nuostolį.n 4
Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) vidutiniškai moka didžiausią darbo užmokestį. Juridiniai asmenys, patenkantys į 25% kvantilį vidutiniškai moka mažiausią darbo užmokestį. užmokestį